home *** CD-ROM | disk | FTP | other *** search
/ PC Media 2 / PC MEDIA CD02.iso / share / prog / basclock / clock.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1993-07-24  |  2.0 KB  |  69 lines

  1. 10  '************************************************************
  2. 20  '***THIS PROGRAM DRAWS A CLOCK THAT KEEPS TRACK OF THE TIME**
  3. 30  '****** DALE KOEHN ******************************************
  4. 40  SCREEN 9:CLS:DIM N(13),N$(13)
  5. 50  R=180:PI=3.14159:H=1:M=2:A=-1
  6. 60  A=A+1
  7. 70  READ N(A),N$(A)
  8. 80  IF N$(A)="END" THEN GOTO 150
  9. 90  GOTO 60
  10. 100  DATA 0,"U6R4D6L4R4"
  11. 110  DATA 1,"U6D6"
  12. 120  DATA 2,"U3R4U3L4BD6R4"
  13. 130  DATA 3,"R4U3L4R4U3L4R4D6"
  14. 140  DATA 4,"BR4U6M-4,+3R4D3"
  15. 150  '
  16. 160  DATA 5,"R4U3L4U3R4BD6"
  17. 170  DATA 6,"U6R4L4D6R4U3L4BM+4,+3"
  18. 180  DATA 7,"BR4U6L4BM+4,+6"
  19. 190  DATA 8,"U6R4D6L4U3R4D3"
  20. 200  DATA 9,"R4U6L4D3R4D3"
  21. 210  DATA 44,"END"
  22. 220  Y=13
  23. 230  WHILE Y>1
  24. 240  Y=Y-1:X=X+(PI/6)
  25. 250  PSET (300+COS(X+PI/3)*(R+20),180-SIN(X+PI/3)*(R+20)/1.35),0:'NUMBERS
  26. 260  NUM$=MID$(STR$(Y),2)
  27. 270  FOR Z=1 TO LEN(NUM$)
  28. 280  L$=MID$(NUM$,Z,1)
  29. 290  FOR ZZ=0 TO 9
  30. 300  IF ZZ=VAL(L$) THEN DRAW "c15" + N$(ZZ) + "BR4"
  31. 310  NEXT ZZ
  32. 320  NEXT Z
  33. 330  WEND
  34. 340  KEY OFF
  35. 350  CIRCLE (300,180),220,1
  36. 360  FOR X=0 TO PI*2 STEP PI/30
  37. 370  LINE (300+COS(X)*(R+2),180-SIN(X)*(R+2)/1.35)-(300+COS(X)*(R+5),180-SIN(X)*(R+5)/1.35),4:'HOURS
  38. 380  NEXT X
  39. 390  FOR X=0 TO PI*2 STEP PI/6
  40. 400  LINE (300+COS(X)*(R+2),180-SIN(X)*(R+2)/1.35)-(300+COS(X)*(R+10),180-SIN(X)*(R+10)/1.35),1:'HOURS
  41. 410  NEXT X
  42. 420  A$=INKEY$:IF A$="q" OR A$="Q" THEN END
  43. 430  S=VAL(RIGHT$(TIME$,2)):S=(-S/60) * (PI*2)   + PI/2:IF S<0 THEN S=(PI*2)+S
  44. 440  LOCATE 1,60:PRINT TIME$
  45. 450  IF S=LS THEN GOTO 500
  46. 460  LINE (300,180)-(300+COS(LS)*R,180-SIN(LS)*R/1.35),0:'seconds
  47. 470  LINE (300,180)-(300+COS(S)*R,180-SIN(S)*R/1.35),4:'seconds
  48. 480  IF INT(LS*10)/10=INT(10*H)/10 THEN GOTO 640
  49. 490  IF INT(LS*10)/10=INT(10*M)/10 THEN GOTO 540
  50. 500  LS=S
  51. 510  '
  52. 520  M=-VAL(MID$(TIME$,4,2))/60 * (PI*2) + PI/2:IF M<0 THEN M=(PI*2)+M
  53. 530  IF M=LM THEN GOTO 580
  54. 540  LINE (300,180)-(300+COS(LM)*R,180-SIN(LM)*R/1.35),0:'MINUTES
  55. 550  LINE (300,180)-(300+COS(M)*R,180-SIN(M)*R/1.35),2:'MINUTES
  56. 560  IF LM=H THEN GOTO 640
  57. 570  LM=M:LS=S
  58. 580  '
  59. 590  IF VAL(LEFT$(TIME$,2))>12 THEN H=-(VAL(LEFT$(TIME$,2))-12)/60 * (PI*2) + PI/2:GOTO 620
  60. 600  T=VAL(LEFT$(TIME$,2)):IF T>12 THEN T=T-12
  61. 610  H=-T/12*(PI*2) + PI/2:IF H<0 THEN H=(PI*2)+H
  62. 620  IF LM=H THEN GOTO 640
  63. 630  IF H=LH THEN GOTO 670
  64. 640  LINE (300,180)-(300+COS(LH)*(R-50),180-SIN(LH)*(R-50)/1.35),0:'HOURS
  65. 650  LINE (300,180)-(300+COS(H)*(R-50),180-SIN(H)*(R-50)/1.35),1:'HOURS
  66. 660  LH=H:LS=S:LM=M
  67. 670  '
  68. 680  GOTO 420
  69.